package com.ynet.hm.utils.config;

import com.ynet.hm.utils.enums.ExceptionEnum;

/**
 * 
 * Title: ResultUtil.java<br/>
 * Description:异常统一处理工具类 <br/>
 * 
 * @author chengcaiyi
 * @version 1.0
 * @date 2018年6月18日
 */
public class ResultUtil {

	/**
	 * 返回成功，传入返回体具体出參
	 * 
	 * @param <T>
	 * 
	 * @param <T>
	 * 
	 * @param object
	 * @return
	 */
	public static <T> Result<T> success(T t) {
		Result<T> result = new Result<T>();
		result.setCode("0");
		result.setMsg("success");
		result.setData(t);
		return result;
	}

	/**
	 * 提供给部分不需要出參的接口
	 * 
	 * @param <T>
	 * 
	 * @return
	 */
	public static <T> Result<T> success() {
		return success(null);
	}

	/**
	 * 自定义错误信息
	 * 
	 * @param <T>
	 * 
	 * @param code
	 * @param msg
	 * @return
	 */
	public static <T> Result<T> error(String code, String msg) {
		Result<T> result = new Result<T>();
		result.setCode(code);
		result.setMsg(msg);
		result.setData(null);
		return result;
	}

	/**
	 * 返回异常信息，在已知的范围内
	 * 
	 * @param <T>
	 * 
	 * @param exceptionEnum
	 * @return
	 */
	public static <T> Result<T> error(ExceptionEnum exceptionEnum) {
		Result<T> result = new Result<T>();
		result.setCode(exceptionEnum.getCode());
		result.setMsg(exceptionEnum.getMsg());
		result.setData(null);
		return result;
	}
}
